Fix: Enable RQL filter parsing for GET /api/v1/metrics/lasthtml endpoint #79
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix: Enable RQL filter parsing for GET /api/v1/metrics/lasthtml endpoint
Problem
The GET
/api/v1/metrics/lasthtmlendpoint was not properly processing RQL (Resource Query Language) filter parameters, causing filters like hostname, container name, and other criteria to be ignored in database queries.Root Cause:
The
GetLastHTMLhandler was passingnilas the RQL parser toparseParams(), which meant that filter parameters in the request were not being parsed and converted to SQL WHERE conditions.When
parser == nil, theparseParamsfunction skips RQL filter processing, resulting in:Solution
Changed the
GetLastHTMLhandler to useMetricsQueryParserinstead ofnil, enabling proper RQL filter parsing:This ensures that:
Impact
Before: Requests like
/api/v1/metrics/lasthtml?filter={"HostName":{"$eq":"server1"}}would ignore the hostname filter and return results from all hosts.After: The same request now properly filters results to only include data from "server1".
Testing
This fix aligns the
GetLastHTMLhandler with other metrics endpoints that already useMetricsQueryParserfor consistent filter behavior across the API.Files Changed
src/gprofiler_flamedb_rest/handlers/handlers.go: UpdatedGetLastHTMLhandler to useMetricsQueryParserType of Change